gtk4.git
6 years agotreeview: Make final
Matthias Clasen [Wed, 29 May 2019 01:42:38 +0000 (21:42 -0400)]
treeview: Make final

Make GtkTreeSelection final as well.

6 years agoflow box: Make final
Matthias Clasen [Wed, 29 May 2019 00:01:03 +0000 (20:01 -0400)]
flow box: Make final

We keep GtkFlowBoxChild subclassable, though.

6 years agolistbox Make final
Matthias Clasen [Wed, 29 May 2019 00:00:40 +0000 (20:00 -0400)]
listbox Make final

We keep GtkListBoxRow subclassable, though.

6 years agonotebook: Make final
Matthias Clasen [Tue, 28 May 2019 23:53:56 +0000 (23:53 +0000)]
notebook: Make final

6 years agolabel: Make final
Matthias Clasen [Tue, 28 May 2019 23:45:45 +0000 (19:45 -0400)]
label: Make final

6 years agomenubar: Make final
Matthias Clasen [Tue, 28 May 2019 23:43:43 +0000 (19:43 -0400)]
menubar: Make final

6 years agotoolbar: make final
Matthias Clasen [Tue, 28 May 2019 23:37:51 +0000 (23:37 +0000)]
toolbar: make final

6 years agomenu: Make final
Matthias Clasen [Tue, 28 May 2019 23:37:31 +0000 (23:37 +0000)]
menu: Make final

6 years agoForgotten file
Matthias Clasen [Tue, 28 May 2019 23:30:02 +0000 (23:30 +0000)]
Forgotten file

6 years agomenu tool button: Make final
Matthias Clasen [Tue, 28 May 2019 22:58:58 +0000 (18:58 -0400)]
menu tool button: Make final

6 years agoradio tool button: Make final
Matthias Clasen [Tue, 28 May 2019 22:58:46 +0000 (18:58 -0400)]
radio tool button: Make final

6 years agotoggle tool button: Use standard padding
Matthias Clasen [Tue, 28 May 2019 22:58:31 +0000 (18:58 -0400)]
toggle tool button: Use standard padding

6 years agotool button: Use standard padding
Matthias Clasen [Tue, 28 May 2019 22:58:05 +0000 (18:58 -0400)]
tool button: Use standard padding

6 years agoiconview: Make final
Matthias Clasen [Tue, 28 May 2019 22:50:08 +0000 (22:50 +0000)]
iconview: Make final

6 years agostack: Make final
Matthias Clasen [Tue, 28 May 2019 22:35:07 +0000 (22:35 +0000)]
stack: Make final

6 years agofile chooser error stack: Don't derive from stack
Matthias Clasen [Tue, 28 May 2019 22:12:20 +0000 (22:12 +0000)]
file chooser error stack: Don't derive from stack

We can just have a GtkStack, instead.

6 years agoscrolled window: Make final
Matthias Clasen [Tue, 28 May 2019 21:04:32 +0000 (17:04 -0400)]
scrolled window: Make final

6 years agoinspector: Stop deriving from scrolled window
Matthias Clasen [Tue, 28 May 2019 22:34:47 +0000 (22:34 +0000)]
inspector: Stop deriving from scrolled window

6 years agoplaces sidebar: Don't derive from scrolled window
Matthias Clasen [Tue, 28 May 2019 22:11:14 +0000 (22:11 +0000)]
places sidebar: Don't derive from scrolled window

We can just have a scrolled window, instead.

6 years agoForgotten file
Matthias Clasen [Tue, 28 May 2019 22:16:59 +0000 (22:16 +0000)]
Forgotten file

6 years agoMerge branch 'wip/matthiasc/popup5' into 'master'
Matthias Clasen [Tue, 28 May 2019 20:46:07 +0000 (20:46 +0000)]
Merge branch 'wip/matthiasc/popup5' into 'master'

Reimplement popups

See merge request GNOME/gtk!847

6 years agoinspector: Show surface and renderer
Matthias Clasen [Tue, 28 May 2019 19:43:01 +0000 (19:43 +0000)]
inspector: Show surface and renderer

6 years agoGDK W32: Fix indentation and placate GCC
Руслан Ижбулатов [Tue, 28 May 2019 17:25:45 +0000 (17:25 +0000)]
GDK W32: Fix indentation and placate GCC

6 years agoGDK W32: Correctly log popups
Руслан Ижбулатов [Tue, 28 May 2019 17:21:42 +0000 (17:21 +0000)]
GDK W32: Correctly log popups

6 years agoGDK W32: Only use owner windows for popups
Руслан Ижбулатов [Tue, 28 May 2019 16:39:58 +0000 (16:39 +0000)]
GDK W32: Only use owner windows for popups

GTK4 doesn't have WS_CHILD windows anymore, so hWndParent argument
to CreateWindowEx() is always interpreted as the owner window,
not the parent window.

A window with an owner:
* is above the owner in Z-order
* is destroyed when the owner is destroyed
* is hidden when the owner is minimized
This is enforced by the OS.

GTK can only allow this for popup windows.

Desktop window must never[0] be an owner.

[0]: https://devblogs.microsoft.com/oldnewthing/20040224-00/?p=40493

6 years agoGDK W32: No more child windows
Руслан Ижбулатов [Tue, 28 May 2019 16:37:28 +0000 (16:37 +0000)]
GDK W32: No more child windows

We don't have child windows (the window-inside-a-window kind of windows)
anymore. Remove all the code related to that.

6 years agoDon't assume that gdk_surface[_move]_resize() is asynchronous
Руслан Ижбулатов [Tue, 28 May 2019 16:14:39 +0000 (16:14 +0000)]
Don't assume that gdk_surface[_move]_resize() is asynchronous

On Windows that call resizes the native window immediately,
and the corresponding GDK event is emitted and processed
before the control is returned to gtk_window_move_resize().
Therefore, update freeze and configure_request_count increment
must happen before the call, not after it.

6 years agoAdd missing include
Руслан Ижбулатов [Tue, 28 May 2019 00:35:30 +0000 (00:35 +0000)]
Add missing include

6 years agoGDK W32: Don't handle WM_ACTIVATE for popup windows
Руслан Ижбулатов [Mon, 27 May 2019 23:51:38 +0000 (23:51 +0000)]
GDK W32: Don't handle WM_ACTIVATE for popup windows

Popups can't be active or inactive, so emitting GDK events
in response to WM_ACTIVATE makes no sense for these kinds
of GDK surfaces.

The jury is still out on whether we should block (return 0)
or ignore (don't return anything) this message.

Blocking WM_NCACTIVATE (which we currently ignore) is definitely
not an option - it completely breaks input somehow.

6 years agoAvoid compiler warnings
Matthias Clasen [Mon, 27 May 2019 16:26:19 +0000 (16:26 +0000)]
Avoid compiler warnings

Avoid priv being flagged as unused on win32.

6 years agoGDK W32: Adjust to new popup surfaces
Руслан Ижбулатов [Sun, 26 May 2019 15:36:03 +0000 (15:36 +0000)]
GDK W32: Adjust to new popup surfaces

1) Handle GDK_SURFACE_POPUP in RegisterGdkClass()
   (for now pretend it's the same as GDK_SURFACE_TOPLEVEL)

2) Remove useless code from GDK_SURFACE_TOPLEVEL case in _gdk_win32_display_create_surface()
   (now there's just GDK_SURFACE_TOPLEVEL there, no need for a type check)

3) Have a separate case for GDK_SURFACE_POPUP and ensure that
   it doesn't get WS_CHILDWINDOW (and neither should GDK_SURFACE_TEMP).

6 years agosurface: Cosmetics
Matthias Clasen [Sun, 26 May 2019 03:55:08 +0000 (03:55 +0000)]
surface: Cosmetics

Move things where they belong.

6 years agopopover: Don't constantly redraw the beak
Matthias Clasen [Sat, 25 May 2019 23:11:30 +0000 (23:11 +0000)]
popover: Don't constantly redraw the beak

We don't want to constantly draw the arrow
if we don't have to. Save the render node
to achieve this.

6 years agowayland: Disconnect the frame clock
Matthias Clasen [Fri, 24 May 2019 10:59:38 +0000 (10:59 +0000)]
wayland: Disconnect the frame clock

The frame clock can survive the surface now,
so we need to disconnect.

6 years agowin32: Disconnect the frame clock
Matthias Clasen [Fri, 24 May 2019 10:55:06 +0000 (10:55 +0000)]
win32: Disconnect the frame clock

The frame clock can now survive the surface,
so we need to disconnect when the surface goes away.

6 years agox11: Disconnect from the frame clock
Matthias Clasen [Fri, 24 May 2019 01:55:57 +0000 (01:55 +0000)]
x11: Disconnect from the frame clock

The frame clock can now survive its surface,
so we need to disconnect signal handlers.

6 years agobroadway: Disconnect from the frame clock
Matthias Clasen [Fri, 24 May 2019 01:55:23 +0000 (01:55 +0000)]
broadway: Disconnect from the frame clock

The frame clock can no survive its surface,
so we need to disconnect signal handlers.

6 years agosurface: Give backends a chance to disconnect
Matthias Clasen [Fri, 24 May 2019 01:56:35 +0000 (01:56 +0000)]
surface: Give backends a chance to disconnect

Call the destroy vfunc before clearing
frame clock and gl context, so backends
have a chance to clean up.

6 years agofishbowl: Don't pop up popovers too early
Matthias Clasen [Fri, 24 May 2019 01:54:55 +0000 (01:54 +0000)]
fishbowl: Don't pop up popovers too early

Wayland does not like this.

6 years agopopover: Stop needles allocations
Matthias Clasen [Thu, 23 May 2019 00:18:12 +0000 (00:18 +0000)]
popover: Stop needles allocations

We were queuing an allocation whenever
the popover is flipped over, unnecessarily,
since we don't change the size of the surface.

This was showing up as popovers being invisible
when flipped over, under X.

6 years agosurface: Fix the fallback move-to-rect implementation
Matthias Clasen [Wed, 22 May 2019 23:47:59 +0000 (23:47 +0000)]
surface: Fix the fallback move-to-rect implementation

On X11, the final and flipped rects were reporting
global coordinates. This was showing up as misplaced
popover beaks.

6 years agowin32: Set surface type early enough
Matthias Clasen [Wed, 22 May 2019 22:40:27 +0000 (22:40 +0000)]
win32: Set surface type early enough

We need to set the surface type before
the frame clock.

6 years agosurface: Make only toplevels control events
Matthias Clasen [Wed, 22 May 2019 20:58:24 +0000 (20:58 +0000)]
surface: Make only toplevels control events

There is no need for popups to connect to the frame
clock to pause and unpause events on the display -
the toplevel already does it.

And don't connect to paint either - handle paint
on popups recursively.

6 years agogdk: Maintain popup tree in the frontend
Matthias Clasen [Wed, 22 May 2019 22:04:45 +0000 (22:04 +0000)]
gdk: Maintain popup tree in the frontend

We will need this information here, and we can
share the child lists between various backends.

6 years agosurface: Make surface-type a property
Matthias Clasen [Wed, 22 May 2019 22:35:09 +0000 (22:35 +0000)]
surface: Make surface-type a property

Make surface-type a construct-only property,
so we can set it before the frame clock.

6 years agoAdwaita: Remove Emoji completion special case
Matthias Clasen [Wed, 22 May 2019 00:45:08 +0000 (20:45 -0400)]
Adwaita: Remove Emoji completion special case

We can use GtkPopover::has-arrow now.

6 years agoinspector: Avoid a critical warning
Matthias Clasen [Wed, 22 May 2019 00:43:04 +0000 (00:43 +0000)]
inspector: Avoid a critical warning

6 years agopopover: Make it possible to not have an arrow
Matthias Clasen [Wed, 22 May 2019 00:42:07 +0000 (00:42 +0000)]
popover: Make it possible to not have an arrow

This will make popovers move flexible for other
uses, such as the Emoji completion popup.

6 years agopopover: Set input shapes on wayland too
Matthias Clasen [Wed, 22 May 2019 00:00:44 +0000 (00:00 +0000)]
popover: Set input shapes on wayland too

No reason not to do it. Wayland has input shapes.

6 years agowin32: Set the surface type
Matthias Clasen [Tue, 21 May 2019 23:41:00 +0000 (23:41 +0000)]
win32: Set the surface type

This is copying some code from the corresponding
create_surface implementations of the other backends.

6 years agoIME IM: Be able to handle NULL widget correctly
Руслан Ижбулатов [Tue, 21 May 2019 21:29:38 +0000 (21:29 +0000)]
IME IM: Be able to handle NULL widget correctly

6 years agoGDK W32: Fix the code to compile
Руслан Ижбулатов [Tue, 21 May 2019 21:20:15 +0000 (21:20 +0000)]
GDK W32: Fix the code to compile

Somewhat change the order of initialization (to be closer
to what Wayland backend does).

Also remove the wrapper field that is no longer needed -
it used to hold a pointer to the main GdkWindow instance,
which wrapped GdkWin32ImplWindow. Since impls are gone,
nothing is wrapping anything anymore.

Fix a substitution error, where wrong pointer was added
to the hash table. Added a comment to ensure that future readers
(including myself) won't be confused by the fact that we're
inserting a pointer instead of the handle itself.

6 years agoGDK W32: be able to handle NULL cursor
Руслан Ижбулатов [Tue, 21 May 2019 21:17:54 +0000 (21:17 +0000)]
GDK W32: be able to handle NULL cursor

6 years agosurface: Don't dispose the frame clock prematurely
Matthias Clasen [Mon, 20 May 2019 13:19:12 +0000 (13:19 +0000)]
surface: Don't dispose the frame clock prematurely

Since we are now sharing frame clocks with multiple
surfaces, we can no longer dispose them unconditionally
when a surface goes away. Only do it if we are a
toplevel (without parent).

This was showing up as criticals on exit when opening
and closing any popover in widget factory.

6 years agotooltip: fix critical warnings
Matthias Clasen [Mon, 20 May 2019 12:17:12 +0000 (12:17 +0000)]
tooltip: fix critical warnings

We might trigger a requery while unrooted.
Deal with it.

6 years agoMention gtk_widget_get_toplevel in the migration guide.
Matthias Clasen [Mon, 20 May 2019 04:52:22 +0000 (04:52 +0000)]
Mention gtk_widget_get_toplevel in the migration guide.

6 years agoDrop gtk_widget_get_toplevel
Matthias Clasen [Mon, 20 May 2019 04:51:31 +0000 (04:51 +0000)]
Drop gtk_widget_get_toplevel

Not used anymore.

6 years agoStop using gtk_widget_get_toplevel
Matthias Clasen [Mon, 20 May 2019 04:47:50 +0000 (04:47 +0000)]
Stop using gtk_widget_get_toplevel

All uses of it can be replaced by gtk_widget_get_root.

6 years agoCosmetics
Matthias Clasen [Mon, 20 May 2019 04:11:25 +0000 (04:11 +0000)]
Cosmetics

6 years agoMention gtk_widget_is_toplevel in the migration guide
Matthias Clasen [Mon, 20 May 2019 03:54:59 +0000 (03:54 +0000)]
Mention gtk_widget_is_toplevel in the migration guide

6 years agoDrop gtk_widget_is_toplevel
Matthias Clasen [Mon, 20 May 2019 03:53:43 +0000 (03:53 +0000)]
Drop gtk_widget_is_toplevel

No longer used.

6 years agoStop using gtk_widget_is_toplevel
Matthias Clasen [Mon, 20 May 2019 03:31:03 +0000 (03:31 +0000)]
Stop using gtk_widget_is_toplevel

6 years agoMention gtk_widget_get_surface in the migration guide
Matthias Clasen [Mon, 20 May 2019 03:22:28 +0000 (03:22 +0000)]
Mention gtk_widget_get_surface in the migration guide

6 years agoDrop gtk_widget_get_surface
Matthias Clasen [Mon, 20 May 2019 03:20:40 +0000 (03:20 +0000)]
Drop gtk_widget_get_surface

It is no longer used.

6 years agoStop using gtk_widget_get_surface
Matthias Clasen [Mon, 20 May 2019 00:38:08 +0000 (00:38 +0000)]
Stop using gtk_widget_get_surface

Replace all uses of gtk_widget_get_surface by
gtk_native_get_surface.

6 years agoMention modal->autohide rename in migration guide
Matthias Clasen [Mon, 20 May 2019 00:03:30 +0000 (00:03 +0000)]
Mention modal->autohide rename in migration guide

6 years agoAdd a test for the property renaming
Matthias Clasen [Mon, 20 May 2019 00:01:05 +0000 (00:01 +0000)]
Add a test for the property renaming

6 years agobuilder tool: Handle modal->autohide rename
Matthias Clasen [Sun, 19 May 2019 23:53:15 +0000 (23:53 +0000)]
builder tool: Handle modal->autohide rename

Add a facility for renamed properties,
and use it for GtkPopover::modal.

6 years agopopover: Rename modal to autohide
Matthias Clasen [Sun, 19 May 2019 23:46:56 +0000 (19:46 -0400)]
popover: Rename modal to autohide

This is the term we use for the surface,
and it matches the behavior a bit better
than modal.

Update all callers.

6 years agowin32: Build fixes
Matthias Clasen [Sun, 19 May 2019 03:09:05 +0000 (03:09 +0000)]
win32: Build fixes

6 years agotestsuite: Fix some a11y output
Matthias Clasen [Sat, 18 May 2019 15:27:43 +0000 (15:27 +0000)]
testsuite: Fix some a11y output

This was affected by a recent fix to GtkAboutDialog.

6 years agotestsuite: Fix popover-related failures
Matthias Clasen [Sat, 18 May 2019 14:22:29 +0000 (14:22 +0000)]
testsuite: Fix popover-related failures

6 years agowindow: Make unrealize work again
Matthias Clasen [Sat, 18 May 2019 13:39:12 +0000 (13:39 +0000)]
window: Make unrealize work again

GtkWidgets unrealize accesses the frame clock
of the surface, so we need to keep the surface
in place until after we've chained up.

6 years agoDrop gtk_widget_set_surface
Matthias Clasen [Fri, 17 May 2019 21:34:20 +0000 (21:34 +0000)]
Drop gtk_widget_set_surface

Not used anymore. Only GtkNative's have surfaces.

6 years agoDrop GtkWidget::surface
Matthias Clasen [Fri, 17 May 2019 21:32:16 +0000 (21:32 +0000)]
Drop GtkWidget::surface

Unneeded.

6 years agoWork toward dropping widget->surface
Matthias Clasen [Fri, 17 May 2019 21:25:36 +0000 (21:25 +0000)]
Work toward dropping widget->surface

Drop special-casing of GtkNative in
most widget vfuncs. GtkNative implementations
need to override these anyway.

6 years agoRemove gtk_widget_get/set_has_surface
Matthias Clasen [Fri, 17 May 2019 21:08:38 +0000 (21:08 +0000)]
Remove gtk_widget_get/set_has_surface

These serve no purpose anymore - widgets don't
have surfaces, unless they're a GtkNative.

6 years agoAdd a GdkSurface::parent property
Matthias Clasen [Wed, 8 May 2019 04:36:59 +0000 (04:36 +0000)]
Add a GdkSurface::parent property

6 years agopopover: Bring back the beak
Matthias Clasen [Sun, 5 May 2019 23:53:02 +0000 (23:53 +0000)]
popover: Bring back the beak

Bring back the code that draws an arrow.

6 years agox11: Fix handling of frame clock freezes
Matthias Clasen [Sun, 19 May 2019 02:53:17 +0000 (02:53 +0000)]
x11: Fix handling of frame clock freezes

Now that popups share the frame clock of their
parent, we have to be much more careful about
freezing the clock, since that may stop updates
for another surface.

This commit makes two changes that make the
X11 handling of the frame clock more similar
to the Wayland backend:
- Use gdk_surface_freeze_updates instead of
  gdk_surface_freeze_toplevel_updates to avoid
  affecting the frame clock
- Bail out early in before_paint/after_paint
  if the surface is frozen, to avoid affecting
  the frame clock

Together, these two make the X11 popup surface
type work without freezing updates for the toplevel.

6 years agogdk: Inherit the frame clock for popups
Matthias Clasen [Sun, 5 May 2019 22:59:51 +0000 (22:59 +0000)]
gdk: Inherit the frame clock for popups

With separate clocks, the phases are not coordinated,
which messes with GTKs size allocation machinery treating
the entire widget tree as a whole, and causes us to
run into assertion where popups get drawn before they
are allocated.

6 years agoAdd a testcase for size allocation
Matthias Clasen [Sun, 5 May 2019 22:10:16 +0000 (22:10 +0000)]
Add a testcase for size allocation

This triggers a critical warning in gtk_widget_snapshot.

6 years agowidget: Remove a popover special case
Matthias Clasen [Sat, 4 May 2019 19:06:40 +0000 (19:06 +0000)]
widget: Remove a popover special case

We never run this since GtkPopover has its
own size_allocate, anyway.

6 years agotext view: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:45:14 +0000 (18:45 +0000)]
text view: Allocate popovers

6 years agoplaces sidebar: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:44:51 +0000 (18:44 +0000)]
places sidebar: Allocate popovers

6 years agocolor swatch: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:43:04 +0000 (18:43 +0000)]
color swatch: Allocate popovers

6 years agoentry: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:10:12 +0000 (18:10 +0000)]
entry: Allocate popovers

6 years agoscale button: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 17:14:06 +0000 (17:14 +0000)]
scale button: Allocate popovers

Call gtk_native_check_resize() from size_allocate,
as is required now. This gets volume buttons closer
to working again (dragging the slider still doesn't
work).

6 years agotext: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:01:29 +0000 (18:01 +0000)]
text: Allocate popovers

We need to do the same thing the menu button
does, and call gtk_native_check_resize for
all our popovers

6 years agowindow: Don't inherit cursors across surfaces
Matthias Clasen [Sat, 4 May 2019 16:21:33 +0000 (16:21 +0000)]
window: Don't inherit cursors across surfaces

I can't think of a case where this is the desired
behavior. So, instead of setting an explicit cursor
on all popups, just stop walking the parents at
surface boundaries.

6 years agowidget: Optimize resize propagation
Matthias Clasen [Sat, 4 May 2019 18:12:45 +0000 (18:12 +0000)]
widget: Optimize resize propagation

When a GtkNative widget is marked as resize_needed,
we need a current position for its parent and we need
the parent to be allocated (so we can position our
surface), but we don't need the parent to be marked
as resize_needed, since the parent size is entirely
independent of the popup size.

6 years agowidget: Improve warning messages
Matthias Clasen [Sat, 4 May 2019 18:15:03 +0000 (18:15 +0000)]
widget: Improve warning messages

When we print warnings about a widget, using
gtk_widget_get_name() is slightly better than
G_OBJECT_TYPE_NAME(), since it will give us
the widgets unique name when available.

6 years agoAdd gdk_surface_get_parent back
Matthias Clasen [Thu, 2 May 2019 21:43:38 +0000 (17:43 -0400)]
Add gdk_surface_get_parent back

The api is the same, the parent is different.
This now returns the parent of popup surfaces.

6 years agosurface: Remove gdk_surface_set/merge_child_input_shapes()
Alexander Larsson [Tue, 23 Apr 2019 14:29:48 +0000 (16:29 +0200)]
surface: Remove gdk_surface_set/merge_child_input_shapes()

These are useless now that we don't have child surfaces

6 years agosurface: Remove old debug code
Alexander Larsson [Tue, 23 Apr 2019 14:29:33 +0000 (16:29 +0200)]
surface: Remove old debug code

6 years agopopover: Use GdkSurface::autohide
Matthias Clasen [Mon, 22 Apr 2019 21:33:26 +0000 (21:33 +0000)]
popover: Use GdkSurface::autohide

The new api is made for this case.

6 years agosurface: Add an autohide property
Matthias Clasen [Mon, 22 Apr 2019 21:31:33 +0000 (21:31 +0000)]
surface: Add an autohide property

This api is meant to mimic xdg-popover.grab - we
show the surface, and dismiss it when we get events
on other surfaces. For foreign surfaces, the compositor
handles that for us; for our own, we check outselves
before delivering events to GTK.

6 years agobroadway: Track popups
Matthias Clasen [Mon, 22 Apr 2019 20:27:08 +0000 (20:27 +0000)]
broadway: Track popups

This is more or less a 1:1 copy of the X11 code.

6 years agox11: Implement popup surfaces
Matthias Clasen [Mon, 22 Apr 2019 15:22:33 +0000 (15:22 +0000)]
x11: Implement popup surfaces

Make them use o-r windows, and move
with their parent.

We do a sort-of ok job on stacking order
here - whenever the parent window gets a
ConfigureNotify, we just restack all popups
directly on top of their parent. This is good
enough to keep popups on top of their parent
while we drag it around, and it gets the popup
to disappear when raising another window on
top of the parent.

6 years agowayland: Use popup parents
Matthias Clasen [Mon, 22 Apr 2019 15:21:45 +0000 (15:21 +0000)]
wayland: Use popup parents

Make the Wayland move-to-rect implementation
use popup parents.